package com.itany.cloud.service;

import com.itany.cloud.util.ResponseResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.*;

/**
 * @author 石小俊
 */
@Service
// value:指定当前OpenFeign调用的服务是谁,其值是调用的微服务的服务名
//@FeignClient(value = "cloud-nacos-provider")
@FeignClient(value = "cloud-nacos-gateway")
public interface UserServiceClient {

    // 在FeignClient中指定的服务是对应微服务的[协议名://域名:端口]
    // 每一个方法是调用了服务提供者中具体的资源
    // 在当前Feign客户端中,可以使用SpringMVC的Handler中提供的所有注解
    // 但是此处使用的所有注解均没有默认行为

    @GetMapping("/users/{id}")
    public ResponseResult findById(@PathVariable("id") Integer id);

    @GetMapping("/users")
    public ResponseResult findAll();

    @PostMapping("/users")
    public ResponseResult addUser(@RequestParam("username") String username, @RequestParam("password") String password);

    @PutMapping("/users")
    public ResponseResult modifyUser(@RequestParam("id") Integer id,@RequestParam("username") String username, @RequestParam("password") String password);

    @DeleteMapping("/users/{id}")
    public ResponseResult removeUser(@PathVariable("id") Integer id);

}
